package _2021._8._263_丑数;
import java.util.HashSet;
import java.util.Set;

/**
 * 给你一个整数 n ，请你判断 n 是否为 丑数 。如果是，返回 true ；否则，返回 false 。
 *
 * 丑数 就是只包含质因数 2、3 和/或 5 的正整数。
 */
public class Solution {

    Set<Integer> lst=new HashSet<>();
    public void primeSplit(int num){
        for(int i=2;i<=num;i++){
            if(num%i==0){
                System.out.println(i);
                lst.add(i);
                primeSplit(num/i);
                break;
            }
        }
    }


    public static boolean isPrime(int n){
        for(int i=2;i<=Math.sqrt(n);i++){
            if (n%i==0 ) return false;
        }
        return true;
    }

    // 递归
    public  boolean isUgly(int n) {
        if(n<=0) return false;
        if(n==1) return true;
        if(n%2==0){
            return isUgly(n/2);
        }else if(n%3==0){
            return isUgly(n/3);
        }else if(n%5==0){
            return isUgly(n/5);
        }else {
            return false;
        }
    }

    public boolean isUgly2(int n){
        int[] factors={2,3,5};
        for(int factor:factors){
            while(n%factor==0){
                n/=factor;
            }
        }
        return n==1;
    }

    public static void main(String[] args) {
        System.out.println(new Solution().isUgly(1369479539));

    }
}